package com.jytc.framework.bo;

import java.util.List;

import com.jytc.framework.commons.Page;
import com.jytc.framework.commons.PropertyFilter;
import com.jytc.framework.dto.FwRoleDTO;
import com.jytc.framework.po.FwRole;

/**
 * @title: FSysRoleBO.java
 * @description: 角色信息业务操作接口
 * 
 * @author: dongyuese
 *
 */
public interface FwRoleBO
{
	/**
	 * 保存角色信息
	 * @param sysRoleDTO　角色信息数据传输对象
	 * @return　保存成功或失败
	 * @throws Exception
	 */
	int save(FwRoleDTO fwRoleDTO) throws Exception;

	/**
	 * 按照条件分页查询角色信息
	 * @param page　分页信息
	 * @param filters　过滤条件列表
	 * @return　角色信息集合
	 * @throws Exception
	 */
	Page query(final Page page, final List<PropertyFilter> filters) throws Exception;

	/**
	 * 根据角色ID获取角色信息
	 * @param roleId　角色ID
	 * @return　角色信息实体对象
	 * @throws Exception
	 */
	FwRole findById(Integer roleId) throws Exception;

	/**
	 * 根据角色ID删除角色信息
	 * @param roleId　角色ID
	 * @return　删除成功或失败
	 * @throws Exception
	 */
	int deleteById(Integer roleId) throws Exception;

	/**
	 * 批量删除角色信息
	 * @param roleId　角色ID集合
	 * @return 删除成功或失败
	 * @throws Exception
	 */
	int deleteByIds(Integer[] roleIds) throws Exception;

	/**
	 * 角色信息修改
	 * @param sysRoleDTO　角色信息数据传输对象
	 * @return
	 * @throws Exception
	 */
	int update(FwRoleDTO fwRoleDTO) throws Exception;

	/**
	 * 根据单位ID查询角色信息
	 * @param corpId　单位ID
	 * @param status　角色有效标志位
	 * @return　角色信息集合
	 * @throws Exception
	 */
	List<FwRole> findByCorpAndStatus(Integer corpId, Integer status) throws Exception;
}
